// 全选的时候所有的复选框都选中，子项目中的取消全选则取消

// 事件源头部的复选框
// 事件名：点击事件
// 事件业务：
//     第一个做法：使用标杆思想。比较复杂
//     第二种做法：用头部复选框的状态来决定复选框的状态
$('#cartbox table .selectall').click(function(){
    // 使用自己的状态（checked属性）来控制其他子项目的状态
    let zhi = $(this).prop('checked')
    
    if(zhi){
        $('#cartbox table .singlechk').prop('checked',zhi);
        $('#cartbox table .selectall').prop('checked',zhi);
    }else if(!zhi){
        $('#cartbox table .singlechk').prop('checked',zhi);
        $('#cartbox table .selectall').prop('checked',zhi);
    }
    zjjs()
    zsh()
})
//取消全选
// 分析
// 当子项目复选框点击事件发生后，去遍历每一个项目中的复选框值
// 如果只要有一个没有选中，那么全选就是取消选中状态，否则就是选中状态
// 事件源：子项目的复选框  不建议使用
// 

// 第二种方法
// 遍历每一个子项目的复选框，找出选中的个数，在于复选框总数的个数相比较，如果相等则选中，否则取消全选
$('#cartbox table .singlechk').click(function(){
   
    // 获取全部复选框的个数
    let all = $('.singlechk').length
    // 获取选中复选框的个数
    let xz = $('#cartbox table .singlechk:checked').length

    // 比较
    if(all==xz){
        $('#cartbox table .selectall').prop('checked',true);
    }else{
        $('#cartbox table .selectall').prop('checked',false);
    }
    zsh()
    zjjs()

})


// 点击+的时候数量++
$('#cartbox table tbody .jia').click(function(){
    zjjs()
    let value = $(this).siblings("input").val();
    value++;
    $(this).siblings("input").val(value);


    // 获取单价
    let dj = $(this).parents().siblings('.dj').html();
    // 获取小计
    
    let xj = dj*value;
    $(this).parents().siblings('.xj').html( xj.toFixed(2) );
    zjjs()
    zsh()
})

// 点击-的时候数量--
$('#cartbox table tbody .jian').click(function(){
    
    let value = $(this).siblings("input").val();
     value--;
    
    if(value<1){
        value=1
    }
    $(this).siblings("input").val(value);
    

    let dj = $(this).parents().siblings('.dj').html();
    // 获取小计
    
    let xj = dj*value;
    $(this).parents().siblings('.xj').html( xj.toFixed(2) );
    zjjs()
    zsh()
})

// 计算总和
// 思路,会有多个地方需要据算价格所有封装一个函数，方便调用

function zjjs(){
    let sum = 0;
    // 获取选中的复选框
    $('#cartbox table .singlechk:checked').each(function(index,dom){
            // 定义小计
            let dj = $(dom).parents().siblings('.xj').html();
            // 将选中的复选框的小计相加
            
            // 将拿取到的小计转换成数字类型
            sum = sum +parseFloat( dj );
            console.log(sum);
    })
    // 赋值给总价
    $('#zjg').html( sum.toFixed(2) );
}


// 计算总数
function zsh(){
    let count= 0;
    $('#cartbox table .singlechk:checked').each(function(index,dom){
        // 定义input框的值
        let inpuzhi = $(dom).parent().siblings('.inpbox').find('.inpu').val();
        
        count =count+ parseInt(inpuzhi);
    })
    // 赋值
    $('#zsh').html(count.toFixed(0))
}

// 输入框输入不是数字的时候变为1
$('.inpu').keyup(function(){
    let vaule = $(this).val();
    if( isNaN(vaule) || vaule<=0){
        $(this).val(1);
    }else if(vaule>200){
        $(this).val(200);
    }

    vaule = $(this).val()
    let xjzhi = $(this).parents().siblings('.xj').html();
    
    let xjzhi1 = vaule*xjzhi;
    $(this).parents().siblings('.xj').html( xjzhi1.toFixed(2) );
})

$('tbody .scan').click(function(){
    $(this).parents('tr').remove();
})
$('#scxz').click(function(){
     
     $('#cartbox table .singlechk:checked').parents('tr').remove();
    

    $('.selectall').prop('checked',false);
    zjjs()
    zsh()
})




